package cn.csc.module.product.convert.attrvalue;

import cn.csc.framework.common.pojo.PageResult;
import cn.csc.module.product.controller.admin.attrvalue.vo.AttrValueCreateReqVO;
import cn.csc.module.product.controller.admin.attrvalue.vo.AttrValueExcelVO;
import cn.csc.module.product.controller.admin.attrvalue.vo.AttrValueRespVO;
import cn.csc.module.product.controller.admin.attrvalue.vo.AttrValueUpdateReqVO;
import cn.csc.module.product.controller.admin.spu.vo.SpuBasicAttrReqV2VO;
import cn.csc.module.product.controller.app.spu.vo.AppSpuAttrCreateReqVO;
import cn.csc.module.product.dal.dataobject.attrvalue.AttrValueDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 属性值信息 Convert
 *
 * @author 华南城
 */
@Mapper
public interface AttrValueConvert {

    AttrValueConvert INSTANCE = Mappers.getMapper(AttrValueConvert.class);

    AttrValueDO convert(AttrValueCreateReqVO bean);

    AttrValueDO convert(AttrValueUpdateReqVO bean);

    AttrValueRespVO convert(AttrValueDO bean);

    List<AttrValueRespVO> convertList(List<AttrValueDO> list);

    PageResult<AttrValueRespVO> convertPage(PageResult<AttrValueDO> page);

    List<AttrValueExcelVO> convertList02(List<AttrValueDO> list);

    @Mappings(
            @Mapping(source = "id", target = "attrId")
    )
    List<AttrValueDO> convertList03(List<AppSpuAttrCreateReqVO> list);

    List<AttrValueDO> convertList04(List<SpuBasicAttrReqV2VO> list);

    @Mappings(
            @Mapping(source = "id", target = "attrId")
    )
    AttrValueDO convertList05(SpuBasicAttrReqV2VO spuBasicAttrReqV2VO);


}
